package com.health.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.health.entity.Appointment;
import com.health.entity.pojo.PageData;
import com.health.entity.pojo.dto.QueryAppointPhysicalDTO;
import com.health.entity.pojo.dto.QueryAppointRegisterByDoctorDTO;
import com.health.entity.pojo.dto.QueryAppointRegisterDTO;
import com.health.entity.pojo.vo.AppointPhysicalDownloadVO;
import com.health.entity.pojo.vo.AppointPhysicalVO;
import com.health.entity.pojo.vo.AppointRegisterDownloadVO;
import com.health.entity.pojo.vo.ApponitmentRegisterVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * <p>
 * 预约表 服务类
 * </p>
 *
 * @author konglz
 * @since 2023-04-16
 */
public interface IAppointmentService extends IService<Appointment> {
    /**
    * @Description: 预约挂号查询分页
    * @return: void
    * @Author: konglz
    * @Date: 2023/4/19
    */
    PageData listPageRegisterAppointInfo(@PathVariable("currentPage") Integer currentPage , @PathVariable("pageSize") Integer pageSiz, QueryAppointRegisterDTO queryAppointRegisterDTO);

    /**
    * @Description: 根据医生查询预约挂号的信息
    * @return: com.health.entity.pojo.PageData
    * @Author: konglz
    * @Date: 2023/4/19
    */
    PageData listPageRegisterAppointByDoctor(QueryAppointRegisterByDoctorDTO queryAppointRegisterByDoctorDTO);

    /**
    * @Description: 下载挂号明细
    * @return: java.util.List<com.health.entity.pojo.vo.AppointRegisterDownloadVO>
    * @Author: konglz
    * @Date: 2023/4/19
    */
    public List<AppointRegisterDownloadVO> listPageRegisterAppointByDoctorDownlaod(QueryAppointRegisterByDoctorDTO queryAppointRegisterByDoctorDTO);


    /**
     *  预约查询体检 服务类
     *  @author yu
     *  @since 2023-04-20
     */

    //预约查询体检 数据列表获取
    PageData listAllPhysicals(Integer pageNum, Integer pageSize,QueryAppointPhysicalDTO dto);

    ////预约查询体检 预约明细 基本信息
    List<AppointPhysicalVO> getPhysicalById(Integer id);

    ////预约查询体检 预约明细
    PageData getPhysicalOrderById(Integer pageNum,Integer pageSize,Integer id);

    //导出数据
    List<AppointPhysicalDownloadVO> listPhysicalDownload(Integer id);
}


